Tengo un problema con mi página de wordpress, ya que siempre recibo este error JS:
Uncaught ReferenceError: _ is not definedLa línea de código a la que se refiere es _.noConflict(); declaración de abajo. Sin embargo, como puede ver, el lodash se carga justo encima y debería haber proporcionado la variable _. ¿Alguna idea de por qué sucede esto?
<script type='text/javascript' defer src='https://website.com/wp-includes/js/dist/vendor/lodash.min.js'></script> <script type='text/javascript'> window.lodash = _.noConflict(); </script>agradezco cualquier pista
Está cargando lodash de forma diferida, lo que significa que esperará a cargarse, pero está tratando de usarlo de inmediato. En el momento en que se ejecuta la segunda parte, lodash aún no se ha cargado.
Debe dejar de diferir la carga de lodash o envolver el segundo bit de código en algún tipo de devolución de llamada lista que no se ejecutará hasta que se haya cargado lodash.
Intente eliminar 'aplazar' en la primera etiqueta de secuencia de comandos o agregue un aplazamiento a la segunda etiqueta de secuencia de comandos. Un 'aplazamiento' en la etiqueta del script significa que se ejecuta después de que la página haya terminado de analizarse. Aquí hay una explicación más detallada.
Puede await a que lodash esté disponible.
const sleep = (delay: number) => new Promise((resolve) => setTimeout(resolve, delay)); const getLodash = () => new Promise(async (resolve) => { while (_ === undefined) { await sleep(100); } resolve(_); }); (async () => { window.lodash = await getLodash(); })();